[MRG] Kmeans memory problem

ENH: Precompute distances only if overhead is below 100MB

Precomputing distances can consume a lot of memory if several jobs are
used. With 8 jobs a dataset of shape (1e6, 2) and n_clusters=100 the
precomputed distances will consume 3GB of memory while the dataset only
consume 15MB (Assuming double precision is used).

I wouldn't mention the multiple jobs here: KMeans is eating up memory, the multiple jobs makes the problem worst, but the problem exists independently.