Hola
Buscando en google he encontrado el siguiente código para no ejecutar dos veces el programa apadtado a VB.NET espero que te sea útil, yo no lo he utilizado.
Código:
Imports System.Diagnostics
Dim aModuleName As String = Diagnostics.Process.GetCurrentProcess.MainModule.ModuleName
Dim aProcName As String = System.IO.Path.GetFileNameWithoutExtension(aModuleName)
If Process.GetProcessesByName(aProcName).Length > 1 Then
Application.Exit()
End If
--Saludos--