How to aasign a new data point to a cluster?
Suppose if  you use kmeans clustering then you can
1.train and  save the model using pickle
2.loa the model using pickle
3.pass your new sample as a vector to the predict function of the loaded model  object
model.predict([[0, 0], [12, 3]])
this will give you only one cluster label
4.if you want to get  top n clusters that the sample might belong to then take the cluster centers of your model as save it in a variable this will be list of list or matrix .
cc=kmeans.cluster_centers_
compute the similarity between your new sample and the cc matrix , rank the distances and yo will get n nearest clusters