The proper method seems to have some issue:
Reinstall 'sshd' specifying the '-i' flag to 'cygrunsrv' or edit the
current service under "Administrative Tools"->"Services" and check
"Allow service to interact with desktop" in the "Log On" tab of the
So I try some hack. I create a cygwin_screen.cmd and put it in the Windows Startup folder.
bash --login -i "/home/username/bin/start_screen.sh"
start_screen.sh is simple and it will make sure that we have the screen to attach to.
screen -dmS "my_screen"
Now I can remote login to Windows from ssh client and attach to that screen when I want to run the Windows GUI application.
$screen -d -r my_screen