Multiprocessing

Multiprocessing added for CPU bound tasks.

Experimental at the moment, and requires more work.