Jeffrey Layton has written an interesting overview of schedulers under Linux.
When the change in scheduler is performed the “old” scheduler completes all of it’s requests before control switches over to the new scheduler (ain’t Linux grand?).
Of course you can only change to schedulers which are included with the kernel.