ENH use threads instead of multiprocessing in SGD