ENH: better error message

Avoid having the function return None, and lead to incomprehensible error
messages
ENH: add the cosine distance to paired distances
ENH: different metrics in hierarchical cluster