Ну чтоб GMM завёлся на ваших данных и что-то докинул, то надо чтоб компоненты смеси были распределены нормально. Чем больше они похожи на гауссовские, тем лучше для GMM’a. В реальных данных такое происходит далеко не всегда. Конечно, никто нам не запрещает решать задачу разделения смеси, если компоненты имеют другой закон распределения, но тогда скорее всего придётся писать под это дело свой велосипед, так как в sklearn готовой реализации точно нет. Хотя мб уже кто-то реализовал в своей библиотечке поддержку других распределений, можно прочекать гитхаб
Рискну вбросить свои 5 копеек. Если компонентов смеси немного (произвольные распределения), то можно в лоб составить задачу максимизации правдоподобия и решить её каким-нибудь методом из scipy.optimize, всякие дифференциальные эволюции и иммитации отжига довольно неплохо делают свое дело, как показывает моя практика. Правда процесс может занять больше ожидаемого, но все же это решение "в два клика". А если получиться свести задачу в funnel-like, то там еще более мощные методы есть для этого.