Cluster doc2vec using Affinity Propagation
Both of them convert the distances back to similarities, albeit using different methods. They will, if I recall correctly, also square the distances.

This may be problematic with the most common variant of cosine distance, which already is a squared distance. So it may be a good idea to modify the methods to be able to directly work with the similarities. But you probably need to modify the source code for this (and understand the methods!)