PKCS#11 specification states that each process must call Initialize once in its threads.
If you got such an error it means that you are calling Initialize twice or more in different threads of the same process. Maybe are you calling NCryptoki under IIS?
Anyway, if Initialize returns CKR_CRYPTOKI_ALREADY_INITIALIZED
, as I guess, you can ignore this error because the underlying PKCS#11 has already been initialized in another thread and you can continue your work