Accessing same CUDA card from different processes? Is it allowed?

Is it possible to access a given CUDA card from different processes (i.e. applications)?

What happens if 2 different applications call cudaSetDevice on the same device? Will the 2nd call fail?

It is possible.
Second application will not fail. Driver will maintain application-independent queue of kernels and they will be executed on device.