Note que o Scipy e Scikit-learn não são exatamente distribuições totalmente distintas. De fato, o Scikit-learn foi construído a partir do Numpy, Scipy e Matpplotlib.
É válido mencionar antes de qualquer resposta específica que o algoritmo de k-means clustering é um algoritmo bem simples e, por isso, não deve haver tantas diferenças de implementação.
Disclaimer: Eu não comparei desempenho das duas implementações.
Entretanto, tendo dito isso, existem algumas poucas diferenças que devem ser investigadas:
Por exemplo, o scipy apresenta duas versões kmeans e kmeans2. Aparecentemente, kmeans2 é a versão usual do algoritmo que você está buscando. O kmeans é usado como ponto de partida para a técnica conhecida como vector quantization.
Por outro lado, o scikit-learn tem apenas o kmeans, que aparentemente uma diferença é o fato que permite controle sobre a paralelização do problema.
De fato, seria muito legal se você depois pudesse colocar seus próprios achados aqui. Algo interessante por exemplo seria comparar as duas funções scipy.kmeans2 com sklearn.kmeans para ver como elas procedem com diferentes dados e como elas "escalam" com amostras de tamanhos diferentes.
Em relação a visualização, dê uma olhada aqui!