I searched online and looked video tutorials but I'm still not sure. Would you consider the below data normally distributed? I know the ideal fit in theory would be that most of the points are on the line. However data in the real world can be different. So would like to hear your opinion from a practical point of view. Would it be safe to perform a regression analysis on this dataset?
You should calculate and report the sample skewness and kurtosis of your residual distribution. Even without this, it appears from your histogram that it is probably leptokurtic; it has a higher peak, lower shoulders and fatter tail than the normal distribution. From the histogram it looks quite close to a Pearson Type VI distribution with positive excess kurtosis and possibly some slight positive skew. Fitting the distribution to this family would probably give a reasonable fit.
Deviation from normality of errors is not fatal for a regression model, since many of the results are robust to deviations from this distributional assuption. This deviation from normality means that your underlying error distribution is probably slightly leptokurtic. Your coefficient estimates should still be fine, but you will want to take the excess kurtosis into account if you construct prediction intervals for individual values. The excess kurtosis means that there is a higher probability of high errors in either direction than would be predicted by the normal regression model.
To answer my own question based on discussion with others:
The data looks quite close to being normally distributed. No distribution with real data is exactly normal, there will be always small deviations. In this case its quite close to normal and can be therefore treated as normal distribution.