Out of sample versus in-sample predictions I am running a simple linear regression between labor force participation rate (LFPR) by country, and log GDP per capita.
regress avg_LFPrate log_avg_gdp

With the following output:
Source  SS  df  MS      Number of obs   =   154
            F(1, 152)       =   1.07
Model   117.848252  1   117.848252   Prob > F        =  0.3022
Residual    16714.8671  152 109.966231   R-squared       =  0.0070
            Adj R-squared   =   0.0005
Total   16832.7153  153 110.017747   Root MSE        =  10.486

                
avg_LFPrate Coef.   Std. Err.   t    P>t     [95% Conf. Interval]
                
log_avg_gdp .7628571    .7369047    1.04   0.302    -.6930409   2.218755
_cons   53.55055    6.998206    7.65   0.000     39.72423   67.37686

        

If my goal is to know how much should a country's LFP rate be given its log GDP per capita level, is running an out of sample prediction the correct method?
This is what I ran in Stata after running the regression above, but I am not sure if this is the appropriate method.
predict predict_avg_LFPrate
 A: With 154 observations, which is just about all the countries in the world with available data, you don't have a lot of data to spare for out-of-sample predictions. Your code is just returning in-sample predictions, which are not particularly interesting since you can just make a scatter plot of the raw data.
If you want a summary of the relationship, you should just look at the model itself, which gives you the expected value of LFPR given logged GDP per capita.
So what you want here is to plot $$E[LFPR \vert \ln(gdppc)] = 53.55055 + .7628571 \cdot \ln(gdppc) $$ for various values of $\ln(gdppc)$ that are meaningful.
In Stata, you can do that in several ways, the easiest of which is something like this:
regress avg_LFPrate log_avg_gdp
margins, at(log_avg_gdp = (5(1)12))
marginsplot

This shows you the expected value between \$150 and \$163K. You can also just do all that in one step:
tw (lfitci avg_LFPrate log_avg_gdp)

Here's an example using the cars dataset:
sysuse auto, clear
reg price mpg 
margin, at(mpg = (10(5)40))
marginsplot
tw (lfitci price mpg) (scatter price mpg)

You can also try things like tw lowess instead of tw lfitci to capture any nonlinearities.
