[WIP] ENH: Parallelize neighbors search through multiprocessing

I used the most simple approach with `'multiprocessing'` joblib backend. A simple benchmark could be seen [here](http://nbviewer.ipython.org/gist/nmayorov/7531d9b59608ae2d76dc).

This is the issue #3536.
Anything that doesn't have repeated calculations in it are safe for `with gil`, IMO. Not that I've looked at the PR overall yet.