Can I preheat my C150 by placing a space heater in the cabin?
Almost no heat gets to the engine.  What hot air drifts through the heater SCAT hose  might warm the exhaust muff a bit.  Plus you have that fire hazard heater in the cabin.

Get some of that aluminum flexible ducting used for clothes dryers and form the end to fit over the heater, and tape it on with aluminum speed tape. Set the heater on the ground to the side with the duct stuck in the bottom of the cowl.  Put some foam in the cowl inlets. 30 minutes to an hour is all you need.

A lot of people just stick the heater itself under the cowl but it's way safer to duct the air in with the heater outside and works just as well.

Preheating is traditionally all about warming up thick oil and the galleries the oil has to flow through, not so much heating the metal itself for the sake of the metal (the cylinder doesn't much care if it warms to 350F starting out at 20F or 50F as long as oil is getting to the parts).  

If the OAT is above 20F and you are using multi-grade oil like Aeroshell 5W50, the oil will flow fine at ambient temperature and there is really no need to preheat if the rise in oil pressure is not significantly delayed from warm weather starting. Not saying not to do it, but if I had no preheater and it was 20 degrees, and I was using multigrade oil, I wouldn't ground myself and would start the engine anyway.