[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 think that I'd like this logic to be moved in the k_means function, so that users that rely on the k_means function, rather than the object, can benefit from it (there are valid usecases to prefer the function on the object).