[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).

When testing for values like this, you should always have an 'else' clause, that raises an well-formulated error message when the value specified by the user is not in the list of acceptable options. The reasons is to catch typos.