What type of regression will improve the prediction for these data? I'm quite new to regression problems in general. I have a simple data with 1 feature. I am trying to fit a regression model so that I can predict on new data set. So far, I tried to fit a linear regression and result are as below (input x plotted on x-axis and output y plotted on y-axis):

I wanted to ask what other regression models I can try to get better fit? 
Update:
I coded up polynomial regression and as per suggested I tried 3rd order polynomial. Also higher order polynomials were clearly overfitted. I also tried to predict in (-2.5 - 2.5) range. Here's what I got:

 A: I'd recommend a generalized additive model rather than a polynomial.  This would allow a non-parametric smoother which is more flexible to follow your s shape.
However, there are numerous other options.  Much depends on the purpose of fitting a model at all.  Is it for prediction, or for explanatory purposes?  What sort of inferences do need to make? etc.
A: What does the science behind the data suggest?
Yes, you can fit many different models including polynomials, splines, trigonometric functions, non-parametric smoothers, etc.  But what is most important is what make sense based on the science behind the data (having fancy computers does not excuse us from understanding where our data comes from).
What do you expect to happen to your y variable as x increases beyond 2? decreases beyond -2?  This can tell a lot about what types of models would be meaningful.  A cubic polynomial will head quickly towards infinity as x increases and quickly towards negative infinity as x decreases.  A natural spline would also head towards infinity and negative infinity, just not as quickly.  But maybe based on the science you believe that there are upper and lower bounds that y will approach but not continue past, this would be a very different type of model.
Polynomials, splines, and smoothers can approximate other functions (remember Taylor Series from calculus?), but if you have an idea of what the true relationship will be then fitting that model directly can enlighten more than an approximation.
A: I would say it depends in the type oft response. Is it deterministic or noisy? 
If it is noisy data i would prefer Gaussian Processes so that you can not only extract a predictor value but also the likeliness.
A general introduction to this type of Model is given here:
scikit-lean GP
A: Your data seems slightly S-shaped, so you could try a cubic (higher order polynomial than cubic runs the risk of overfitting).
